Перейти к основному содержимому

7.07. Информационная безопасность

Разработчику Инженеру

Информационная безопасность

Информационная безопасность (Information Security, InfoSec) держится на «трёх китах»:

  • C – Confidentiality (Конфиденциальность)
  • I – Integrity (Целостность)
  • A – Availability (Доступность)

Это основа информационной безопасности, и на её основе строятся все политики, технологии и практики в этой области.

Все они взаимосвязаны. Если слишком усиливать конфиденциальность, нарушится доступность (слишком много проверок). Если игнорировать целостность, можно подставить конфиденциальность (подмена данных), а если нет доступности, то даже самые защищённые данные будут бесполезными.

Сеть должна использовать шифрование, проверять целостность пакетов, использовать балансировщики. Приложение должно шифровать и валидировать данные, выполнять мониторинг. База данных должна ограничивать права, контролировать изменения и использовать резервные копии. Пользовательский интерфейс должен не показывать лишнего, санитизировать ввод и использовать быстрые загрузки. Всё это - совокупность CIA.

Конфиденциальность

Конфиденциальность отвечает на вопрос «Кто может видеть данные?».

МетодОписание
Шифрование данных (в покое и в движении)Защита информации путём преобразования в нечитаемую форму. Даже при компрометации данных злоумышленник не сможет их расшифровать без соответствующего ключа.
Многофакторная аутентификация (MFA)Процесс проверки личности пользователя на основе комбинации нескольких факторов: знания (пароль), владения (устройство, токен) и биометрии (отпечаток, лицо).
Управление доступом (RBAC, ABAC)Механизмы разграничения прав доступа: ролевое (RBAC — на основе должности) или атрибутное (ABAC — на основе набора характеристик пользователя, ресурса и контекста).
Политики паролейТребования к сложности паролей, регулярной смене и безопасному хранению (например, с использованием хеширования с солью).
DLP (Data Loss Prevention)Системы и политики, направленные на предотвращение несанкционированной передачи или утечки конфиденциальных данных внутри и за пределами организации.
Обучение сотрудниковПовышение осведомлённости персонала о методах социальной инженерии, фишинга и правилах работы с конфиденциальной информацией.

Нарушением конфиденциальности является утечка данных, перехват токенов авторизации, неправильное раскрытие информации в сети.

Цель конфиденциальности - убедиться, что информация доступна только тем, кто имеет на это право.

Целостность

Целостность данных должна обеспечиваться на протяжении всего их жизненного цикла. Она отвечает на вопрос «Кто может изменять данные?» и «Как мы знаем, что они не были изменены?»

МетодОписание
Хэши и цифровые подписиПозволяют проверить целостность данных: любое изменение информации приводит к несоответствию хэша или недействительности подписи.
Контроль версийСистемы отслеживания изменений (например, Git) фиксируют все модификации кода и документов, обеспечивая возможность восстановления предыдущих состояний.
Разрешения на записьОграничение прав на редактирование данных только уполномоченным пользователям или системам.
Логирование и аудитФиксация всех операций с данными для последующего анализа, выявления инцидентов и установления ответственности.
Интеграционные проверкиВалидация данных при вводе или обновлении для обеспечения их корректности и соответствия заданным правилам.
Блокчейн (в некоторых системах)Используется как неизменяемый журнал транзакций, где каждая запись связана с предыдущей, что делает подделку исторических данных вычислительно неосуществимой.

Нарушением целостности является подмена данных в базе без разрешения, изменение файла без уведомления владельца, и модификация трафика.

Цель целостности - обеспечить неизменность и достоверность информации на всех этапах её жизни.

Доступность

Доступность определяет, что данные должны быть доступны тем, кому они нужны, когда они нужны.

МетодОписание
Резервное копирование и восстановлениеРегулярное создание копий данных с возможностью их восстановления в случае потери из-за сбоя, ошибки или атаки.
Высокая доступность (HA)Архитектурное решение с использованием резервных серверов и автоматическим переключением при отказе основного компонента.
Балансировка нагрузкиРаспределение входящих запросов между несколькими серверами для повышения производительности и отказоустойчивости.
DDoS-защитаСредства фильтрации сетевого трафика, предотвращающие перегрузку сервисов за счёт массовых внешних запросов.
Мониторинг и оповещениеНепрерывный сбор метрик состояния систем и автоматическая отправка уведомлений при отклонениях от нормы.
SLA (Service Level Agreement)Договорные обязательства по уровню доступности и времени реакции на инциденты, измеряемые в процентах (например, 99.9%).
Регулярное техническое обслуживаниеПлановые работы: обновление ПО, установка патчей, очистка логов, дефрагментация и другие операции для поддержания стабильности системы.

Нарушение доступности - это DDoS-атака, сбой оборудования, отказ диска/сервера, чрезмерная нагрузка на БД.

Цель - гарантировать, что авторизованные пользователи могут получить доступ к данным и ресурсам в нужный момент.

Опасности и безопасность

Опасности строятся на базе рисков, угроз и уязвимостей.

Риск - это вероятность возникновения угрозы, которая может привести к ущербу при наличии уязвимости. К примеру, риск утечки данных через слабые пароли.

Угроза - это потенциальный источник вреда или инцидента, способного нанести ущерб системе. Пример - хакерская атака, фишинг, внутренний злоумышленник.

Уязвимость - это слабое место в системе, которое можно использовать для совершения атаки. Пример - незапатченная библиотека, слабый пароль, открытое API.

Основная формула:

Риск = Угроза x Уязвимость.

Если нет ни одной из составляющих — риска нет.

Инциденты - это любые события, которые угрожают конфиденциальности, целостности или доступности информации.

В случае возникновения инцидентов, необходимо своевременно на него отреагировать в соответствии с планом.

План реагирования на инциденты (IRP - Incident Response Plan) включает в себя следующие этапы:

  • Подготовка: обучение команды, инструменты, документация;
  • Обнаружение: логи, SIEM, мониторинг;
  • Ограничение ущерба: изоляция, отзыв токенов, блокировка IP;
  • Расследование: кто, что, где, когда;
  • Восстановление: восстановление из бэкапа, патчи;
  • Уроки: анализ, улучшение, обновление процедур.

В случае возникновения проблем - утечки данных, изменении условий, взломе учётной записи, нужно уведомить пользователей в течение 72 часов, объяснить, что произошло и указать, какие данные могли быть скомпрометированы.

CERT (Computer Emergency Response Team) — организация, которая помогает в расследовании и реагировании на кибератаки. В РФ это RU-CERT, который осуществляет сбор, хранение и обработку статистических данных, связанных с распространением вредоносных программ и сетевых атак на территории РФ.

Эксплойт - конкретный код или метод, используемый для эксплуатации уязвимости. Пример - SQL-инъекция, XSS-эксплойт, RCE (Remote Code Execution).

Несанкционированный доступ подразумевает получение доступа к данным или системе без разрешения. От этого защититься можно при помощи ролевой модели, двухфакторной аутентификации и аудита активности. К примеру, это может быть взлом аккаунта через подбор пароля, использование чужого токена авторизации, получение прав администратора через IDOR, перехват сессии.

Безопасность приложений как раз рассчитана на защиту от несанкционированного доступа и эксплойтов.

OWASP (Open Web Application Security Project) — это некоммерческая организация, которая выпускает список TOP 10 самых опасных уязвимостей веб-приложений.

OWASP Top 10 — это международно признанный стандарт и рейтинг наиболее критичных уязвимостей веб-приложений. Документ обновляется каждые 3–4 года и служит основой для повышения осведомлённости разработчиков и специалистов по безопасности, а также для внедрения лучших практик защиты.

Сейчас, среди таких проблем перечисляются:

  • Нарушение контроля доступа (Broken Access Control) связаны с неправильным контролем;
  • Сбои криптографии (Cryptographic Failures) связаны со слабым шифрованием или его отсутствием;
  • Инъекции (Injection) предполагают внедрение вредоносного кода (SQLi, CMDi, XSS);
  • Небезопасный дизайн (Insecure Design) - уязвимости на уровне архитектуры;
  • Ошибки конфигурации безопасности (Security Misconfiguration) - неправильная настройка серверов или сервисов;
  • Уязвимые и устаревшие компоненты (Vulnerable and Outdated Components) говорят об использовании устаревших библиотек;
  • Ошибки идентификации и аутентификации (Identification and Authentication Failures) - это очевидные проблемы с логином и паролем;
  • Нарушения целостности ПО и данных (Software and Data Integrity Failures) - это уязвимости при обновлении и версионировании;
  • Ошибки логирования и мониторинга безопасности (Security Logging and Monitoring Failures) говорят об отсутствии логирования или оповещений или их неправильной настройке;
  • Подделка запросов на стороне сервера (Server-Side Request Forgery) предполагает принуждение сервера к запросам от своего имени.